package com.zhijian.medical.entity.po;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 产品表
 *
 * @author Auto Generator
 * @date 2022-01-17 14:55:39
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Api(tags = "产品表")
public class Product {
    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id", hidden = true)
    private Long id;

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称", hidden = true)
    private String name;

    /**
     * 编号
     */
    @ApiModelProperty("编号")
    private String number;

    /**
     * 品牌
     */
    @ApiModelProperty("品牌")
    private String brand;

    /**
     * 厂家名称
     */
    @ApiModelProperty("厂家名称")
    @NotNull(message = "厂家名称不能为空")
    @NotEmpty(message = "厂家名称不能为空")
    private String factory;

    /**
     * 厂家id
     */
    @ApiModelProperty("厂家id")
    @NotNull(message = "厂家id不能为空")
    private Long factoryId;

    /**
     * 数量
     */
    @ApiModelProperty("数量")
    @NotNull(message = "数量不能为空")
    @Min(value = 1, message = "数量不能小于1")
    private Integer quantity;

    /**
     * 申请人id
     */
    @ApiModelProperty(value = "申请人id", hidden = true)
    private Long applyUserId;

    /**
     * 申请人名称
     */
    @ApiModelProperty(value = "申请人名称", hidden = true)
    private String applyUserName;

    /**
     * 申请人组织id集合，以英文逗号隔开
     */
    @ApiModelProperty(value = "申请人组织id集合，以英文逗号隔开", hidden = true)
    private String applyUserGroupIds;

    /**
     * 审批人id
     */
    @ApiModelProperty(value = "审批人id", hidden = true)
    private Long approveUserId;

    /**
     * 审批人名称
     */
    @ApiModelProperty(value = "审批人名称", hidden = true)
    private String approveUserName;

    /**
     * 试剂品类id
     */
    @ApiModelProperty("试剂品类id")
    @NotNull(message = "试剂品类id不能为空")
    private Long agentiaCategoryId;

    /**
     * 状态，0：设备试剂管理员待审批；1：亚专科主任待审批；2：行政主任待审批；3：审批完成；4：厂家发货；5：收货确认
     */
    @ApiModelProperty(value = "状态，0：设备试剂管理员待审批；1：亚专科主任待审批；2：行政主任待审批；3：审批完成；4：厂家发货；5：收货确认", hidden = true)
    private Byte status;

    /**
     * 申购号
     */
    @ApiModelProperty(value = "申购号", hidden = true)
    private String code;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String note;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", hidden = true)
    private Date updateTime;
}